﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Mysoft.QuickCode.DbExpressionExtensions
{
    /// <summary>
    /// SQL查询语法扩展，已过期，请使用Sqlable对象调用
    /// </summary>
    public static class SqlOperators
    {
        #region Between
        /// <summary>
        /// 已过期，请使用Sqlable()对象调用。
        /// </summary>
        /// <param name="v"></param>
        /// <param name="left"></param>
        /// <param name="right"></param>
        /// <returns></returns>
        public static bool Between(this int v, int left, int right) { return true; }
        /// <summary>
        /// 已过期，请使用Sqlable()对象调用。
        /// </summary>
        /// <param name="v"></param>
        /// <param name="left"></param>
        /// <param name="right"></param>
        /// <returns></returns>
        public static bool Between(this string v, string left, string right) { return true; }
        /// <summary>
        /// 已过期，请使用Sqlable()对象调用。
        /// </summary>
        /// <param name="v"></param>
        /// <param name="left"></param>
        /// <param name="right"></param>
        /// <returns></returns>
        public static bool Between(this DateTime v, DateTime left, DateTime right) { return true; }

        #endregion

        #region In
        /// <summary>
        /// 已过期，请使用Sqlable()对象调用。
        /// </summary>
        /// <param name="v"></param>
        /// <param name="vals"></param>
        /// <returns></returns>
        public static bool In(this int v, int[] vals) { return true; }
        /// <summary>
        /// 已过期，请使用Sqlable()对象调用。
        /// </summary>
        /// <param name="v"></param>
        /// <param name="vals"></param>
        /// <returns></returns>
        public static bool In(this string v, string[] vals) { return true; }
        /// <summary>
        /// 已过期，请使用Sqlable()对象调用。
        /// </summary>
        /// <param name="v"></param>
        /// <param name="vals"></param>
        /// <returns></returns>
        public static bool In(this Guid v, Guid[] vals) { return true; }
        /// <summary>
        /// 已过期，请使用Sqlable()对象调用。
        /// </summary>
        /// <param name="v"></param>
        /// <param name="vals"></param>
        /// <returns></returns>
        public static bool NotIn(this int v, int[] vals) { return true; }
        /// <summary>
        /// 已过期，请使用Sqlable()对象调用。
        /// </summary>
        /// <param name="v"></param>
        /// <param name="vals"></param>
        /// <returns></returns>
        public static bool NotIn(this string v, string[] vals) { return true; }
        /// <summary>
        /// 已过期，请使用Sqlable()对象调用。
        /// </summary>
        /// <param name="v"></param>
        /// <param name="vals"></param>
        /// <returns></returns>
        public static bool NotIn(this Guid v, Guid[] vals) { return true; }

        #endregion

        #region InTable 创建临时表，支持SQL语句超长的IN查询，外层需要嵌套事务或使用同一个Connection
        /// <summary>
        /// 已过期，请使用Sqlable()对象调用。
        /// </summary>
        /// <param name="v"></param>
        /// <param name="vals"></param>
        /// <returns></returns>
        public static bool InTable(this int v, int[] vals) { return true; }
        /// <summary>
        /// 已过期，请使用Sqlable()对象调用。
        /// </summary>
        /// <param name="v"></param>
        /// <param name="vals"></param>
        /// <returns></returns>
        public static bool InTable(this string v, string[] vals) { return true; }
        /// <summary>
        /// 已过期，请使用Sqlable()对象调用。
        /// </summary>
        /// <param name="v"></param>
        /// <param name="vals"></param>
        /// <returns></returns>
        public static bool InTable(this Guid v, Guid[] vals) { return true; }


        /// <summary>
        /// 已过期，请使用Sqlable()对象调用。
        /// </summary>
        /// <param name="v"></param>
        /// <param name="vals"></param>
        /// <returns></returns>
        public static bool NotInTable(this int v, int[] vals) { return true; }
        /// <summary>
        /// 已过期，请使用Sqlable()对象调用。
        /// </summary>
        /// <param name="v"></param>
        /// <param name="vals"></param>
        /// <returns></returns>
        public static bool NotInTable(this string v, string[] vals) { return true; }
        /// <summary>
        /// 已过期，请使用Sqlable()对象调用。
        /// </summary>
        /// <param name="v"></param>
        /// <param name="vals"></param>
        /// <returns></returns>
        public static bool NotInTable(this Guid v, Guid[] vals) { return true; }


        #endregion

        #region Lt,Gt,Le,Ge
        /// <summary>
        /// 已过期，请使用Sqlable()对象调用。
        /// </summary>
        /// <param name="v"></param>
        /// <param name="val"></param>
        /// <returns></returns>
        public static bool Lt(this int v, int val) { return true; }
        /// <summary>
        /// 已过期，请使用Sqlable()对象调用。
        /// </summary>
        /// <param name="v"></param>
        /// <param name="val"></param>
        /// <returns></returns>
        public static bool Lt(this string v, string val) { return true; }
        /// <summary>
        /// 已过期，请使用Sqlable()对象调用。
        /// </summary>
        /// <param name="v"></param>
        /// <param name="val"></param>
        /// <returns></returns>
        public static bool Gt(this int v, int val) { return true; }
        /// <summary>
        /// 已过期，请使用Sqlable()对象调用。
        /// </summary>
        /// <param name="v"></param>
        /// <param name="val"></param>
        /// <returns></returns>
        public static bool Gt(this string v, string val) { return true; }
        /// <summary>
        /// 已过期，请使用Sqlable()对象调用。
        /// </summary>
        /// <param name="v"></param>
        /// <param name="val"></param>
        /// <returns></returns>
        public static bool Le(this int v, int val) { return true; }
        /// <summary>
        /// 已过期，请使用Sqlable()对象调用。
        /// </summary>
        /// <param name="v"></param>
        /// <param name="val"></param>
        /// <returns></returns>
        public static bool Le(this string v, string val) { return true; }
        /// <summary>
        /// 已过期，请使用Sqlable()对象调用。
        /// </summary>
        /// <param name="v"></param>
        /// <param name="val"></param>
        /// <returns></returns>
        public static bool Ge(this int v, int val) { return true; }
        /// <summary>
        /// 已过期，请使用Sqlable()对象调用。
        /// </summary>
        /// <param name="v"></param>
        /// <param name="val"></param>
        /// <returns></returns>
        public static bool Ge(this string v, string val) { return true; }

        #endregion

        #region NotEquals
        /// <summary>
        /// 已过期，请使用Sqlable()对象调用。
        /// </summary>
        /// <param name="v"></param>
        /// <param name="val"></param>
        /// <returns></returns>
        public static bool NotEquals(this int v, int val) { return true; }
        /// <summary>
        /// 已过期，请使用Sqlable()对象调用。
        /// </summary>
        /// <param name="v"></param>
        /// <param name="val"></param>
        /// <returns></returns>
        public static bool NotEquals(this string v, string val) { return true; }

        #endregion

        #region IsNull,IsNotNull
        /// <summary>
        /// 已过期，请使用Sqlable()对象调用。
        /// </summary>
        /// <param name="v"></param>
        /// <returns></returns>
        public static bool IsNull(this string v) { return true; }
        /// <summary>
        /// 已过期，请使用Sqlable()对象调用。
        /// </summary>
        /// <param name="v"></param>
        /// <returns></returns>
        public static bool IsNotNull(this string v) { return true; }

        #endregion

    }
}
